module AssessmentsHelper
  
  # t.decimal :precision => 8, :scale => 2
  # change_column(table_name, column_name, type, options): Changes the column to a different type using the same parameters as add_column. 
  CASES = {:first => "Non avrai altro Dio al di fuori di me", :second => "Non nominare il nome di Dio invano", :third => "Ricordati di santificare le feste", :fourth => "Onora il padre e la madre", :fifth => "Non uccidere", :sixth => "Non commettere atti inpuri", :seventh => "Non rubare", :eighth => "Non dire falsa testimonianza", :nineth => "Non desiderare la donna d'altri", :tenth => "Non desiderare la roba d'altri"}
  
  # Restituisce l'insieme di risposte corrispondenti alla domanda q specificata come parametro.
  def set_answer_for_select(q)
    # weigth
    # 3 => 6, 3, 0
    # 4 => 6, 4, 2, 0
    # 5 => 6, 4.5, 3, 1.5, 0
    answer = case q.to_i
      when 1 # Non avrai altro Dio al di fuori di me
        [[ "Mai", "1"], ["Ne ho avuti altri..", "2"], ["Mi piace cambiare spesso", "3"]]
      when 2 # Non nominare il nome di Dio invano
        [[ "Mai", "1"], ["Ho detto che berlusconi è innocente", "2"], ["Quando m'arrabbio", "3"], ["Se non bestemmio guarda...", "4"], ["Lo uso come congiunzione", "5"]]
      when 3 # Ricordati di santificare le feste
        [[ "Sempre", "1"], ["Ne approfitto per dormire fino a tardi", "2"], ["Quelle con gli amici?", "3"], ["Sono un occasione per darmi all'alcool", "4"]]
      when 4 #Onora il padre e la madre
        [[ "Sempre, li adoro", "1"], ["se non mi fanno arrabbiare", "2"], ["No", "3"]]
      when 5 # Non uccidere
        [[ "Mai", "1"], ["Qualcuno lo meriterebbe", "2"], ["Ho appena finito di uccidere il vicino perchè faceva rumore...", "3"]]
      when 6 # Non commettere atti inpuri
        [[ "Mai", "1"], ["Come si fa?!", "2"], ["All'ordine del giorno...", "3"]]
      when 7 # Non rubare
        [[ "Mai", "1"], ["Da piccolo qualche cavolata l'ho commessa", "2"], ["Il computer con cui sto scrivendo è rubato!", "3"]]
      when 8 # Non dire falsa testimonianza.
        [[ "Mai", "1"], ["Se serve...", "2"], ["No... Si... Smentisco...", "3"]]
      when 9 # Non desiderare la donna d'altri
        [[ "Mai", "1"], ["Però quante belle ragazze sprecate...", "2"], ["Io non sono geloso!", "3"]]
      when 10 # Non desiderare la roba d'altri
        [[ "Mai", "1"], ["Scusa mi presteresti...", "2"], ["Ucciderei per quel vestito!", "3"]]
      end
    select("assessment", "q" + q.to_s, answer, { :include_blank => "Scegli" }) unless !answer
  end
  
  # Restituisce la domanda "n"esima.
  def get_question(n)
    translate_number(n)
  end
  
  private
  
  # Converte il numero n in numeri ordinali, rappresentati da simboli.
  def translate_number(n)
    cardinal = {1 => :first, 2 => :second, 3 => :third, 4 => :fourth, 5 => :fifth, 6 => :sixth, 7 => :seventh, 8 => :eighth, 9 => :nineth, 10 => :tenth}
    CASES[cardinal[n]]
  end
end
